Application management in a computing device

ABSTRACT

In various embodiments, a card metaphor is established, in which each activity can be represented within an area of the screen referred to as a card. In various embodiments, any of several display modes are available for viewing, interacting with, manipulating, initiating, and dismissing cards. A persistent positional relationship can be established among cards, represented by a one-dimensional sequence. Newly opened cards are generally placed at the end of the sequence, although a new card that bears a relationship to an already open card may, in some embodiments, be placed adjacent to the already open card. In various embodiments, cards may be grouped, with such groups being represented as stacks of cards or by other visually distinctive means.

CROSS-REFERENCE TO RELATED APPLICATIONS

The present application is a continuation of U.S. patent applicationSer. No. 14/281,702 filed May 19, 2014 for “Card Metaphor for Activitiesin a Computing Device,” which claims priority as a continuation of U.S.patent application Ser. No. 14/174,525 filed Feb. 6, 2014 for “CardMetaphor for Activities in a Computing Device,” now U.S. Pat. No.9,395,888, which claims priority as a continuation of U.S. patentapplication Ser. No. 12/416,279 filed Apr. 1, 2009 for “Card Metaphorfor Activities in a Computing Device,” now U.S. Pat. No. 8,683,362,which claims priority as a continuation-in-part of U.S. patentapplication Ser. No. 12/126,145 filed May 23, 2008 for “Navigating AmongActivities in a Computing Device,” now U.S. Pat. No. 8,296,684, thedisclosures of all of which are incorporated by reference herein.

FIELD OF THE INVENTION

In various embodiments, the present invention relates to applicationmanagement in computing devices, and more particularly to systems andmethods for implementing a card metaphor for activities such as softwareapplications in such devices.

DESCRIPTION OF THE RELATED ART

Many currently available computing devices run operating systems thatoffer users the opportunity to run several applications at the sametime, and even to perform several activities simultaneously, within asingle application and/or among two or more applications. For example, auser may open an e-mail application, a word processing application, anon-screen calculator, and a web browser, so that all of the applicationsare open concurrently. The user may open several documents within theword processing application, and may open several e-mail messages. Suchan arrangement allows the user to move from one task to another bykeeping these various applications and activities open at the same time.

Conventionally, such an operating paradigm is accomplished by the use ofmultiple overlapping windows within a graphical user interface. Adesktop metaphor is often employed, wherein the user can move and resizewindows on a display screen by direct manipulation. Thus, eachapplication may have a window or several windows; at any given time, onewindow has focus (usually indicated as such by being situated on top ofthe other windows). Other windows may be visible, invisible, orpartially visible (for example if they are partially or completelyobscured by other windows). A user can switch from one task to anotherby causing a different window to have focus; this is commonlyaccomplished by clicking on a visible portion of the window beingactivated, or by clicking on a button or icon representing the window orapplication in a task bar, quick-launch area, or similar construct. Insome operating systems, pop-up menus and/or keyboard shortcuts may beavailable for switching among applications or documents.

Overlapping windows are a highly effective mechanism for applicationmanagement. They exploit the user's spatial memory by associating aparticular area of the screen with a particular task being performed. Auser may find it easier to return to a previously opened window when heor she remembers that the window was placed at a particular location onthe screen, as compared with a list or menu of open windows that doesnot provide a model of spatial placement and stability.

One issue with conventional window-based mechanisms for applicationmanagement is that a large screen size is usually needed. Users facedwith limited screen space must choose between, on the one hand, makingwindows smaller and thus reducing available workspace within eachapplication, and, on the other hand, stacking windows atop each other sothat only one window (or very few) is visible at a time. Reducingworkspace can make it very difficult to use an application, particularlyfor applications such as word processing, photo editing, drawing, andthe like. Stacking windows reduces the ease with which the user canswitch from one application or document to another, as it is moredifficult to see what is currently open and to find the appropriatewindow to be activated. When windows are stacked, users usually resortto navigation via taskbar, quick-launch area, menu, keyboard shortcut,or the like, thereby reducing the advantages of the overlapping windowparadigm.

Some systems, such as the Mac OS operating system offered by Apple, Inc.of Cupertino, California, offer a mechanism for navigating among openapplications by temporarily moving and shrinking open windows, movingthe windows apart from one another so that they do not overlap. The usercan then activate one of the windows; the original window positions andsizes are then restored, with the activated window on top. This featureis effective in allowing users to quickly switch among open applicationsand documents, but still requires a relatively large amount of screenspace so as to effectively show the temporarily shrunk windows when theuser is to select among them.

Mobile devices such as smartphones, personal digital assistants, musicplayers, handheld computers, and the like are becoming increasinglypowerful. Many are now able to run several applications concurrently,and to perform sophisticated functions that rival traditional computingdevices. However, most such devices have extremely small screens, whencompared to laptop or desktop computers. Thus, the conventionalwindow-based techniques for navigating among open applications anddocuments do not function very well on mobile devices. There isinsufficient screen space to display multiple overlapping windows. Infact, many such devices do not even have enough space to display a taskbar or quick-launch area. Rather, the entire screen is often devoted toa single application, document, message, task, or activity, so as tomake the most effective use of the extremely limited amount of spaceavailable.

SUMMARY

Related U.S. patent application Ser. No. 12/126,145, filed May 23, 2008,for “Navigating Among Activities in a Computing Device,” now U.S. Pat.No. 8,296,684, the disclosure of which is incorporated herein, describesvarious embodiments for running two or more activities concurrently on acomputing device, and provides at least two modes for interacting withthe activities. The user may toggle between the modes as desired. Abutton or other control is provided for switching between full-screenmode and card mode.

In various embodiments, a card metaphor is established, in which eachactivity can be represented within an area of the screen. For purposesof the description herein, these areas of the screen are referred to as“cards”. Although in some ways cards resemble windows as are known inthe art of desktop user interfaces, in various embodiments cards can bemanipulated in particular ways that are not generally available toconventional window-based graphical user interfaces; such manipulationsare described in more detail herein. One skilled in the art willrecognize that the term “card” is used herein merely as a convenientterm for referring to an area of the screen that contains informationrelated to or generated by an activity such as a software application.

In various embodiments, any of several display modes are available forviewing, interacting with, manipulating, initiating, and dismissingcards.

In one embodiment, in a full-screen mode, one activity occupiessubstantially an entire display screen. The card thus fillssubstantially the entire display screen, although in some embodimentssome areas of the screen may be reserved for status indicators, alerts,messages, and the like.

In one embodiment, a second mode is available, referred to as “cardmode”. In card mode, one activity is visible within a card, and aportion of at least one other card is also visible. Thus, a card thathas focus (i.e., that the user is interacting with) is visible in full,while at least one other card is only partially visible. In the cardmode, the user can cause cards to move on the screen, so as to changefocus from one card to another. For example, the card having focus canbe moved off the screen, to be replaced by a new card that is then givenfocus. In one aspect, the cards are ordered in a sequence. In oneaspect, the cards move in concert with one another; pushing one card offone edge of the screen causes a new card to appear at the opposite edge.A persistent positional relationship can be established among cards,based on the established sequence (although the user can rearrange thesequence if desired).

In one embodiment, a third mode is available, referred to as “shufflemode”. In shuffle mode, two or more cards are shown in full. The size ofthe cards may be reduced so that more cards can be shown simultaneously.In addition, portions of one or more other cards may be visible. Forexample, in one embodiment, three cards can be shown in full in ahorizontal row, with portions of two other cards shown to the left andright of the fully displayed cards. In one embodiment, shuffle modefacilitates easier reordering and manipulation of cards, and isassociated with certain behaviors (described below) to optimize suchoperations. In one embodiment, shuffle mode resembles a zoomed out viewof the cards presented in card view. In one embodiment, the user canzoom out to various degrees, so that several different varieties ofshuffle mode can be presented, for example with different numbers ofcards on the screen. In one embodiment, when more cards are displayed,they are displayed at a smaller size. In one embodiment, cards arepresented in a linear arrangement in shuffle mode, preserving the linearsequence used in card mode.

In one embodiment, a fourth mode is available, referred to as “gridmode”. In grid mode, a larger number of cards are shown in full. In oneembodiment, cards are scaled down in size so that all available cardsare displayed simultaneously. In another embodiment, all cards aredisplayed to a predetermined maximum number of cards; if more than thepredetermined maximum are available for display, scrolling isimplemented to allow access to non-displayed cards. In one embodiment,cards are presented in a grid arrangement in grid mode.

In one embodiment, a user can manipulate cards in different waysdepending on which mode is currently active. In one embodiment,different interactions are available in different modes, and/or certainuser actions can be interpreted differently depending on which mode iscurrently active. The particularities of such differences are describedbelow for various embodiments of the invention.

In one embodiment, cards are active, regardless of the current displaymode, so that the information represented in a card is substantiallycurrent and is updated substantially in real-time. In one embodiment,the user can interact with cards regardless of display mode, so thatuser interface elements within cards are active regardless of thedisplay mode. In another embodiment, in some display modes, some or allcards may not be active, so that the data shown therein can be “frozen”while in a particular mode; such an embodiment may be useful, forexample, when available system resources preclude real-time updating ofall cards without undesirably degrading system performance. Similarly,“frozen” cards may be temporarily inhibited from accepting user input insome embodiments.

In one embodiment, a persistent positional relationship is establishedand maintained among cards. The positional relationship can be aone-dimensional sequence or some more complex two-dimensionalrelationship. The positional relationship is persistent in the sensethat it does not change unless the user indicates that it should bechanged, or some other event takes place that indicates a change iswarranted (such as non-use of an application, or an application crashingor being dismissed).

In one embodiment, cards are initially positioned according to the orderin which the corresponding activities (such as applications) werelaunched. New cards can be launched, for example, when a new applicationor activity is launched, or in some cases for an application that isalready running (for example if a new message is being composed in anemail application). Thus, in an embodiment where a one-dimensionalsequence of cards is implemented, a newly-activated card would be placedat the end of the sequence; for example, if a horizontal row is used,the newly-activated card could be placed to the right of the right-mostcard in the sequence. A user can, of course, reposition cards asdesired.

In one embodiment, if a user launches a new activity (such as anapplication), a card (or more than one card) for the activity iscreated, with a position at the end of the sequence. If the userattempts to launch an activity that is already running, in oneembodiment the card is not moved within the sequence of cards, but thecurrent view of the sequence is shifted so that the card for theactivity is given focus and presented in a central location on thescreen. Alternatively, in another embodiment, if the user attempts tolaunch an activity that is already running, the card for that activityis moved to the end of the sequence.

As described above, in one embodiment, newly opened cards are initiallypositioned at the end of the sequence. In another embodiment, some newlyopened cards may be placed at locations other than at the end of thesequence. For example, any new cards for an already-running activity areplaced adjacent to previously existing card(s) for that application.These cards, referred to as “sibling cards”, are therefore positioned sothat cards for a given activity are located adjacent to one another inthe overall card sequence. For example, a new card for an emailapplication may appear when a user initiates a reply to an emailmessage; the new sibling card for the reply can be positioned adjacentto the existing card for the original message.

In one embodiment, the user is free to move sibling cards so that theyare no longer adjacent to one another; in another embodiment, siblingcards cannot be separated from one another, although they can be movedas a group.

In one embodiment, a visual paradigm can be employed to indicate groupsof cards. For example, in one embodiment, card groups can be denoted bystacks; all cards within a particular group are displayed in a mannerthat resembles a stack of cards. Alternatively, card groups can beindicated in other ways that distinguish them from non-grouped cards:for example, card groups can be shown via a distinctive color scheme,different sizes, different vertical or horizontal positioning,bracketing, highlighting, spacing, or any other mechanism. In variousembodiments as described below, a user can interact with groups,separating their constituent cards as desired, creating new groups,changing the order of groups, and the like. In one embodiment, wherestacking is used to indicate groups, cards can be “unstacked” at times,even while preserving their group relationship, either automatically ormanually to facilitate certain types of interactions and viewing ofconstituent cards. While cards are unstacked, in some embodiments, analternative mechanism, such as bracketing or distinctive coloring, isused to remind the user that the cards are still members of a group.

The various features described above and herein can be implementedsingly or in any combination, as will be apparent to one skilled in theart. Additional features and advantages will become apparent in thedescription provided below.

BRIEF DESCRIPTION OF THE DRAWINGS

The accompanying drawings illustrate several embodiments of theinvention and, together with the description, serve to explain theprinciples of the invention. One skilled in the art will recognize thatthe particular embodiments illustrated in the drawings are merelyexemplary, and are not intended to limit the scope of the presentinvention.

FIG. 1 depicts a display screen showing a launcher for initiating anactivity such as an application.

FIG. 2 depicts the display screen in full-screen mode, wherein anactivity occupies substantially the entire display screen, according toone embodiment of the present invention.

FIG. 3 depicts the display screen in card mode, including a card havingfocus and two partially displayed cards, according to one embodiment ofthe present invention.

FIG. 4 depicts the display screen in card mode after the user has movedthe cards, according to one embodiment of the present invention.

FIG. 5 depicts the display screen in full-screen mode after the user hasdesignated a new card as having focus, according to one embodiment ofthe present invention.

FIGS. 6A through 6F depict a sequence for switching from one card toanother according to one embodiment of the present invention.

FIG. 7 is a conceptual depiction of a sequence for switching from onecard to another according to one embodiment of the present invention.

FIGS. 8A and 8B depict a sequence for dismissing a card according to oneembodiment of the present invention.

FIGS. 9A through 9D depict a sequence for rearranging cards according toone embodiment of the present invention.

FIG. 10A depicts the display screen in card mode according to oneembodiment of the present invention.

FIG. 10B depicts the display screen in shuffle mode according to oneembodiment of the present invention.

FIG. 10C depicts dismissal of a card in shuffle mode according to oneembodiment of the present invention.

FIG. 10D depicts reordering of a card in shuffle mode according to oneembodiment of the present invention.

FIGS. 10E, F, and G depict various examples of grid mode according toembodiments of the present invention.

FIG. 11A depicts the display screen in full-screen mode wherein fourcards are open, one of which has focus, according to one embodiment ofthe present invention.

FIG. 11B depicts introduction of a new card in full-screen mode, inresponse to launch of a new activity, according to one embodiment of thepresent invention.

FIG. 11C depicts rearranging of a card sequence in full-screen mode, inresponse to launch of an activity that is already open, according to oneembodiment of the present invention.

FIG. 11D depicts a focus shift without card reordering, in full-screenmode, in response to launch of an activity that is already open,according to one embodiment of the present invention.

FIG. 12A depicts the display screen in full-screen mode wherein sevencards are open, one of which has focus, according to one embodiment ofthe present invention.

FIG. 12B depicts introduction of a sibling card for an open activity infull-screen mode, according to one embodiment of the present invention.

FIGS. 12C and 12D depict reordering of card to separate sibling cards inresponse to user input, according to one embodiment of the presentinvention.

FIG. 13A depicts the display screen in full-screen mode wherein eightcards are open, one of which has focus, according to one embodiment ofthe present invention.

FIG. 13B depicts the display screen in card mode wherein eight cards areopen, including four cards forming a group, according to one embodimentof the present invention wherein the grouped cards are depicted in astack.

FIG. 13C depicts the display screen of FIG. 13B, wherein the cardsforming the group have been reordered, according to one embodiment ofthe present invention.

FIG. 13D depicts the display screen in card mode wherein eight cards areopen, including four cards forming a group, according to one embodimentof the present invention wherein the grouped cards are depicted using adistinctive vertical offset and size.

FIG. 13E depicts the display screen in shuffle mode wherein eight cardsare open, including four cards forming a group, according to oneembodiment of the present invention wherein the grouped cards aredepicted using a distinctive vertical offset.

FIGS. 13F and 13G depict an example of a transition from view in whichone of the members of a group has focus to a view in which the cardhaving focus is not part of a group, according to one embodiment of thepresent invention.

FIGS. 13H through 13K depict an example of creation of a new card groupand adding cards to the group, according to one embodiment.

FIG. 14 is a flow diagram depicting a method for presenting cards ingrid mode according to one embodiment.

FIG. 15 is a flow diagram depicting a method for card rearrangementaccording to one embodiment.

FIGS. 16A through 16D depict a sequence for adding a card to a groupaccording to one embodiment of the present invention.

FIGS. 17A through 17D depict a sequence for removing a card from a groupaccording to one embodiment of the present invention.

DETAILED DESCRIPTION

In the following description, reference is made herein to “activities”.In the context of the present invention, an “activity” is intended toinclude a software application, a task, a document, a page, and/or anyother activity that can be performed in connection with an electronicdevice. As described herein, the present invention provides techniquesfor displaying and manipulating representations of activities on anelectronic device, using a card metaphor. Thus, activities arerepresented by “cards”, which is a term used herein to refer to areas ofthe screen that can be moved and manipulated by the user. Users interactwith cards to launch, terminate, and reorder activities, as well as tonavigate among activities and perform other operations, as described inmore detail below.

System Architecture

In various embodiments, the present invention can be implemented on anyelectronic device, such as a handheld computer, personal digitalassistant (PDA), personal computer, kiosk, cellular telephone, and thelike. For example, the invention can be implemented as a feature of anapplication management paradigm for a software application or operatingsystem running on such a device. Accordingly, the present invention canbe implemented as part of a graphical user interface for controllingsoftware on such a device.

In various embodiments, the invention is particularly well-suited todevices such as smartphones, handheld computers, and PDAs, which havelimited screen space and which are capable of running several softwareapplications concurrently. One skilled in the art will recognize,however, that the invention can be practiced in many other contexts,including any environment in which it is useful to switch easily andsmoothly from one activity to another. Accordingly, the followingdescription is intended to illustrate the invention by way of example,rather than to limit the scope of the claimed invention.

Referring now to FIG. 1, there is shown an example of an example of adevice 100 including a display screen 101 showing a launcher includingseveral icons 104 representing applications that can be opened by theuser, according to one embodiment. A quick-launch area 105 is alsoshown, including additional icons 106 for launching commonly usedapplications and other functions. Quick-launch area 105 is not necessaryfor the present invention, but is shown for illustrative purposes only.

In one embodiment, screen 101 is touch-sensitive, so that a user canactivate an application or function by touching a displayed icon 104,106. In one embodiment, device 100 also includes a touch-sensitivegesture area 102 for entering gesture-based commands, as described inthe above-referenced related application. In another embodiment, screen101 and/or gesture area 102 is sensitive to user motion in proximity tothe surface, so as to detect gestures and commands performed near thesurface but without necessarily contacting the surface.

For illustrative purposes, device 100 as shown in FIG. 1 is a personaldigital assistant or smartphone. Such devices commonly have telephone,email, and text messaging capability, and may perform other functionsincluding, for example, playing music and/or video, surfing the web,running productivity applications, and the like. The present inventioncan be implemented, according to various embodiments, in any type ofdevice having a touch-sensitive screen, and is not limited to deviceshaving the listed functionality. In addition, the particular layoutshown in FIG. 1 is merely exemplary and is not intended to berestrictive of the scope of the claimed invention.

In various embodiments, touch-sensitive screen 101 and gesture area 102can be implemented using any technology that is capable of detecting alocation of contact and/or user motion proximate to the surface.Alternatively, the present invention can be implemented with other userinput mechanisms, such as a keyboard, trackball, stylus, or the like.One skilled in the art will recognize that the techniques of the presentinvention are well suited to direct manipulation, but that any inputtechnique can be used. In one embodiment, gesture area 102 provides atouch-sensitive control area extending beyond the edges oftouch-sensitive screen 101, as described in related application Ser. No.12/115,992, filed May 6, 2008, for “Extended Touch-Sensitive ControlArea for Electronic Device”, the disclosure of which is incorporatedherein by reference.

In one embodiment, device 100 as shown in FIG. 1 also has a physicalbutton 103. In one embodiment, physical button 103 can be used to togglebetween full-screen mode and card mode, as described in more detailbelow. Physical button 103 is not needed for the present invention, andis shown for illustrative purposes only.

Card Metaphor

As described herein, in one embodiment two or more modes are availablefor interacting with device 100. A determination is made as to whichdisplay mode is currently active on device 100. Depending on the currentdisplay mode, cards 301 are displayed differently. In variousembodiments, display modes can include any combination of the following:

-   -   a “full-screen” mode, in which a card representing an        application or other activity occupies substantially the entire        display screen 101;    -   a “card” mode, in which at least two cards are presented, at        least one of which is only partially visible, with each card        representing an application or other activity;    -   a “shuffle” mode, in which cards are presented at a reduced size        with respect to card mode, so that more than one card can be        presented in full; and    -   a “grid” mode, in which card size is reduced according to        available screen space.

As described in more detail below, device 100 can receive input from theuser. In various embodiments, such input can cause device 100 to switchfrom one display mode to another, and/or to reposition displayed cardsin response to user input specifying a switch to another card.

One skilled in the art will recognize that the names given to the modes(“full-screen”, “card”, “shuffle”, and “grid”) are used herein solelyfor identification purposes, and are not intended to connote anyparticular characteristic of the modes or restrict the scope of theinvention in any other way. In general, and without limiting the scopeof the claimed invention: full-screen mode is optimized for maximum useof screen space for interacting with a single activity; card mode isoptimized for easily switching focus from one activity to another andfor easily initiating and terminating activities; shuffle mode isoptimized for reordering and manipulating cards representing activities;and grid mode is optimized to provide an overview of open activities.Many actions can be taken in more than one mode. In one embodiment,activities are live and able to accept input and display outputregardless of the current mode; in another embodiment, activities may belive in some modes but not in others. The various modes will bedescribed in more detail below.

Full-Screen Mode

Referring now to FIG. 2, there is shown display screen 101 infull-screen mode according to one embodiment. In the example, a calendarapplication occupies substantially the entire display screen 101;however, one skilled in the art will recognize that any activity can bepresented in this manner As shown in FIG. 2, even in full-screen mode,certain portions of display screen 101 may be reserved for a title bar,battery indicator, clock, signal strength indicator, and the like.Accordingly, the term “full-screen mode” as used herein is intended torefer to any arrangement wherein the primary focus of the screen 101 isa single activity, even if other, smaller areas of screen 101 arereserved for other functions.

The user interacts with the active activity (such as the calendarapplication shown in FIG. 2) by conventional user interface methods,including manipulating on-screen elements, entering text, and the like.Such techniques are well known in the art.

Card Mode

Referring now to FIG. 3, there is shown an example of display screen 101in card mode according to one embodiment. In one embodiment, the usercan switch among modes pressing physical button 103. In anotherembodiment, the user can touch or double-tap a card 301 in card mode toinitiate a switch to full-screen mode. In yet another embodiment, device100 switches from card mode to full-screen mode after some period ofinactivity. Other mechanisms can also be provided for switching amongthe modes.

As can be seen in FIG. 3, in one embodiment in card mode, card 301Bhaving focus is fully visible. Other cards 301A, 301C are only partiallyvisible and do not have focus. Usually, card 301B having focusrepresents the same activity that was displayed in full-screen modeimmediately before the switch to card mode. Any number of partiallydisplayed cards 301A, 301C can be presented. In the example of FIG. 3,two such cards 301A, 301C are shown, one on either side of card 301Bhaving focus. Typically, in an arrangement where cards 301 are presentedalong a linear axis, one or two partially displayed card(s) 301 can bedisplayed adjacent to the card 301 that has focus. Also, as shown inFIG. 3, in one embodiment, partially displayed cards 301A, 301C areshown slightly smaller than card 301B having focus, so as to furtheremphasize the fact that card 301B has focus.

In one embodiment, partially displayed cards 301A, 301C provide apositional context for card 301B, and provide a mechanism for navigatingto other activities. In one embodiment, the user can designate a card301A, 301C to have focus by touching any area within the card; thiscauses the designated card 301 to move to the central portion of displayscreen 101, and causes other cards to move as well, so that the samepositional sequence is maintained. In one embodiment, the user candesignate a card 301A, 301C to have focus by dragging any displayed card301 to cause the desired card 301 to move to the central portion ofdisplay screen 101; again, other cards 301 move as well, so that thesame positional sequence is maintained. In one embodiment, the user canmove cards 301 left and right by dragging a finger along gesture area102. In one embodiment, such a gesture can be performed even infull-screen mode, causing cards 301 to move left and right in the samemanner as described above for card mode.

In response to a user command, cards 301 shift position on screen 101,so that, for example card 301B that currently has focus becomes onlypartially visible and one of the other cards 301A, 301C becomes fullyvisible and has focus. The cards 301 move in concert with each other, inresponse to user commands Thus, for example, if the user indicates thata central card 301 should move in a rightward direction, then the entiredisplay shifts to the right, as follows:

-   -   The central card 301 (which has focus) moves to the right, so        that it is only partially visible along the right hand side of        display screen 101.    -   If any card 301 was partially visible to the right of the card        301 that has focus, it moves off the right edge of display        screen 101 so that it is no longer visible.    -   If any card 301 was partially visible to the left of the card        301 that has focus, it moves to the right so that it is now        fully visible and has focus.

In one embodiment, the user indicates such movement, for example, bydirect manipulation of the displayed cards 301. This can be performed ona touch screen, for example, by dragging the central card 301 to theleft or to the right on the screen or by tapping on a card that ispartially displayed. Alternatively, a trackball, touch-sensitive pad, orother input device can be provided for facilitating such directmanipulation.

Accordingly, in one embodiment, when the user drags a card 301 to theleft or right within display screen 100, other cards 301 move in concertwith the dragged card 301. Thus, for example, if the user drags card301B to the right, cards 301A and 301C move to the right as well. Thiswould cause card 301C to move off the screen, and card 301A would moveto the central position of display screen 100. The same result wouldoccur if the user drags card 301A to the right.

In one embodiment, if the user drags cards 301 so as to place a card 301sufficiently close to the central position to make it clear that theintention is to give the card 301 focus, the card 301 snaps into thecentral position upon completion of the drag operation. Other cards 301snap into place accordingly to maintain the same positional sequence.Thus, the user need not drag the card 301 all the way to the centralposition. If, on the other hand, the user drags cards 301 a small amountthat does not cause a new card 301 to be sufficiently close to thecentral position, all cards 301 snap back to their previous positionsupon completion of the drag operation.

In one embodiment, cards 301 show applications or other activities inoperation. Thus, as the user navigates among cards 301, he or she cansee the actual live application or other activity within each card 301.

In various embodiments, card motion can be constrained to a single axis,for example horizontal or vertical but not both, so as to simplify thepositional relationship among cards 301. Alternatively, two or more axesof movements can be made available. In the examples described herein,cards 301 are arranged in a horizontal row. The user moves cards 301along a horizontal axis to navigate from one activity to another. Oneskilled in the art will recognize that other arrangements are possible.For example, cards 301 could be arranged vertically instead ofhorizontally. Alternatively, a two-dimensional arrangement of cards 301can be provided.

In one embodiment, once the user has moved the desired card 301 to thecentral position so that it has focus, he or she can indicate thatdisplay screen 101 should return to full-screen mode, so that the card301 having focus occupies substantially the entire display screen 101.Alternatively, device 100 can return to full-screen mode automaticallyafter a period of time elapses where no card movement takes place, or ifthe user starts to interact with the activity that has focus. In oneembodiment, the card 301 that currently has focus is always fullyvisible and displayed in a substantially central location on displayscreen 101 with respect to partially displayed cards 301.

Referring now to FIG. 4, there is shown an example of display screen 101in card mode, after the user has caused card 301C (representing an emailapplication) to become centrally located and to have focus in oneembodiment. As can be seen in FIG. 4, card 301B that previously hadfocus is now partially visible to the left of card 301C. Card 301A is nolonger visible.

In one embodiment, the user can touch or double-tap card 301C tore-enter full-screen mode with the new activity having focus and beingactive, as shown in FIG. 5. Alternatively, the user can press button 103to toggle between full-screen mode and card mode. Thus, in FIG. 5 theuser has completed the switch from the calendar application of FIG. 2 tothe email application.

Referring now to FIG. 7, there is shown a conceptual depiction of asequence for switching from one activity to another according to oneembodiment of the present invention. A number of activities are open,each represented by a card 301A through 301H. Screen 101 only shows asubset of the cards 301 at any given time. As can be seen in the Figure,a positional sequence is maintained even though most of the cards 301are not visible at any given time. FIG. 7 depicts movement of thedisplay screen 101 from an initial position where card 301B has focus(and cards 301A and 301C are partially visible) to a second positionwhere card 301E is has focus (and cards 301D and 301F are partiallyvisible).

The movement of display screen 101 is conceptual. In actual operation inone embodiment, the switch from card 301B to card 301E is accomplishedby moving cards 301 in a leftward direction on screen 101. For example,the user can repeatedly drag cards 301 in a leftward direction to causecards 301C, 301D, and 301E to successively occupy the central position.Alternatively, the user can click on partially displayed card 301C tomove it to the central position and to cause card 301D to be partiallydisplayed, then on partially displayed card 301D to move it to thecentral position and to cause card 301E to be partially displayed, andthen on partially displayed card 301E to move it to the centralposition. Either mechanism operates to shift focus from the activityrepresented by card 301B to the activity represented by card 301E.

In one embodiment, a transition effect is performed to enhance thesmoothness of the transition as cards 301 move and/or snap into place.In one embodiment, the card 301 that is centrally displayed at any giventime is shown slightly larger than other cards 301.

In general, the sequence of cards 301 is persistent, even when the usermoves from one card to another 301. In one embodiment, the sequence iscircular, so that the rightmost card 301 is considered to be to the leftof the leftmost card 301. Thus, moving off one end of the sequence takesthe user back to the other end of the sequence. In another embodiment,as depicted in FIG. 4, the sequence is not circular, so that there is afirst and last card 301 in the sequence.

In one embodiment, cards 301 may be moved within the sequenceautomatically in some circumstances. For example, frequently used cards301 can be moved to more prominent locations in the sequence, while lessfrequently used cards 301 can remain in less prominent locations.

Referring now to FIGS. 6A through 6F, the operation of the inventionaccording to one embodiment is further illustrated by way of an exampleof a sequence for switching from one activity to another; specifically,the user switches from a calendar application to a telephoneapplication. FIG. 6A shows an initial state in which device 100 shows acalendar application in full-screen mode. In FIG. 6B, the user hasswitched to card mode, for example by pressing button 103. Now, thecalendar application is visible in card 301B, and the telephoneapplication is partially visible in card 301A. FIGS. 6C through 6E showthe effect of the user dragging card 301B in a rightward direction. Asthe user drags card 301B, card 301A also moves in a rightward direction,until it is centrally located in display screen 101, as shown in FIG.6E. As discussed above, this motion can also be initiated in response tothe user touching the visible portion of card 301A in FIG. 6B, or bydragging in a horizontal rightward direction in gesture area 102.

Once the telephone application is in the central position in card 301Aas shown in FIG. 6E, the user can tap on card 301A or press button 103to switch to full-screen mode, as shown in FIG. 6F. In one embodiment,the user can also interact with the telephone application directly incard mode as shown in FIG. 6E.

In one embodiment, the user can launch additional activities byreturning to the launch screen as shown in FIG. 1. In one embodiment,this is performed by performing a gesture or other command In oneembodiment, the user can also launch additional activities by touchingan icon 106 in quick-launch area 105. In one embodiment, newly launchedactivities generate new cards that are added to the end of the sequenceof cards shown in FIG. 7. In one embodiment, the card for the newlylaunched activity is, by default, given focus and presented in thecentral position on screen 101.

In one embodiment, the user can dismiss activities, for example byclosing a card 301. In one embodiment, a card 301 can be closed byclicking on a control within the card. In another embodiment, a card 301can be closed by dragging the card upward off screen 101, or performinga flicking action in an upward direction. Referring now to FIGS. 8A and8B, there is shown an example of a sequence where the user drags card301B upward off screen 101, causing card 301B to be dismissed.

As can be seen in FIGS. 8A and 8B, in one embodiment dismissing card301B causes 301C to move leftward to fill in the gap caused by card 301Bbeing dismissed. In general, when a card 301 is dismissed, other cards301 move to fill the gap.

In one embodiment, dismissing a card 301 causes the applicationassociated with the card to close. In another embodiment, theapplication remains open even when card 301 is closed.

In one embodiment, a card 301 might close automatically in certaincircumstances. For example, if a task associated with an application iscompleted, or if an application crashes or terminates, the card 301 forthe application can close automatically.

In one embodiment, the user can also rearrange cards 301 while in cardmode, by tapping and holding a card 301 for a period of time (such as,for example, 500 milliseconds), and then dragging a card 301 from oneposition to another. An example is shown in FIGS. 9A through 9D. Theuser taps and holds his or her finger on card 301B, then drags card 301Bupward, causing cards 301C and 301D to move to fill the gap. The userdoes not immediately release card 301B however; instead, he or she movescard 301B into a position between cards 301C and 301D, as shown in FIG.9C. As the user moves the dragged card 301B between two other cards 301Cand 301D, the two cards 301C and 301D separate to allow placement of thedragged card 301B. The result is the sequence shown in FIG. 9D, wherecard 301B is now positioned between cards 301C and 301D.

In one embodiment, some visual feedback is provided to indicate thatcard rearrangement is in progress; for example, the displayed cards 301can be highlighted in some unique manner, or can include an animation orother effect, once the user has held his or her finger in theappropriate location for at least the specified period of time.

Once the movement action has been initiated, the user can continue todrag card 301 in any direction in order to place card 301 at the desiredposition within the sequence of cards 301. The sequence of cards 301scrolls left or right in response to the dragging operation; forexample, if the user drags card 301 near the right edge of the screen,the sequence scrolls to the left to cause additional cards 301 in thesequence to be shown while others scroll off the screen. When the userreleases card 301, ending the drag operation, card 301 is placed at theindicated position, thus completing the card sequence rearrangementaction.

Shuffle Mode

In one embodiment, an additional mode, referred to as “shuffle” mode,provides the user with another mechanism for viewing and rearrangingcards. In one embodiment, in shuffle mode, cards 301 are shown at areduced size, thus permitting more cards 301 to be shown on screen 101simultaneously.

In one embodiment, when device 100 is in shuffle mode, cards 301 arearranged linearly as they are in card mode. The user can rearrange cards301 as described above for card mode, and substantially all of thebehaviors described above with respect to card mode also apply toshuffle mode. Thus, when the user drags a card 301 to the left or rightwithin display screen 100, other cards 301 move in concert with thedragged card 301. Shuffle mode provides a way to rearrange cards whilebeing able to view more cards 301 simultaneously.

A comparison of FIGS. 10A and 10B provides an example of the differencesbetween card mode and shuffle mode. Referring now to FIG. 10A, there isshown display screen 101 in card mode according to one embodiment of thepresent invention and as described above; here, seven cards 301 arecurrently open, although only one card 301D is shown in full, withportions of two adjacent cards 301C, 301E also being shown. Cards 301A,301B, 301F, and 301G are shown in FIG. 10A for illustrative purposes todepict their positional relationship with visible cards 301C, 301D,301E, even though cards, 301B, 301F, and 301G are off-screen and notcurrently visible on screen 101.

Referring now to FIG. 10B, there is shown display screen 101 in shufflemode for the same seven cards 301 that were included in FIG. 10A. Here,three cards 301C, 301D, and 301E are shown in full, with portions of twoadjacent cards 301B, 301F also being shown. In one embodiment, the sizesof the cards are reduced so that the additional displayed cards fit onscreen 301. One skilled in the art will recognize that the particularnumber of cards 301 visible on the screen can vary from one embodimentto another, and that the particular display of three fully visiblecards, plus two partially visible cards, is merely exemplary of oneembodiment.

In one embodiment, any number of cards 301 can be completely visiblewithin screen 101. For example, as shown, three cards 301 might becompletely visible, with additional partially-visible cards 301 oneither side. Alternatively, five cards 301 might be completely visible,with additional partially-visible cards 301 on either side.

In one embodiment, the user can interact with cards 301 in shuffle modein substantially the same manner as in card mode. Cards 301 can be movedback and forth, and a positional relationship among cards 301 ismaintained. Cards 301 can be rearranged within the sequence by draggingand dropping. A card 301 can be closed, and its activity dismissed, bydragging the card 301 upward off screen 101, or performing a flickingaction in an upward direction, in a manner similar to the operationdescribed above in connection with FIGS. 8A and 8B. For example,referring now to FIG. 10C, there is shown an example of an upward dragor flicking action to dismiss card 301E. Upon dismissal of card 301E,card 301F would shift to the left to occupy the space formerly occupiedby card 301E, and card 301G would move to the left to maintainconsistent spacing among cards.

In one embodiment, while in shuffle mode, the user can initiaterearrangement of the card sequence without necessarily first performinga tap-and-hold input operation for some period of time. For example, asshown in FIG. 10D, the user can immediately initiate a rearrangement ofcards 301 by dragging a card 301D downward; the user need nottap-and-hold for some period of time. If the user wishes totap-and-hold, he or she can still initiate the rearrangement operationby doing so. In either case, once the rearrangement operation hascommenced, the user can drag in any desired direction while continuingto hold his or her finger on screen 101; the display of cards 301scrolls left or right as appropriate when the user's finger approachesthe right- or left-most edge of screen 101.

While card rearrangement is taking place, cards 301 shift position tofill gaps, in a manner similar to that described above in connectionwith FIGS. 9A through 9D for card view. Thus, in shuffle view, if theuser drags card 301D downwards a sufficient amount, as shown in FIG.10D, card 301E would move to the left to fill the gap. As the user movesthe dragged card 301D between two other cards, the two cards wouldseparate to allow placement of the dragged card 301D.

In one embodiment, in shuffle mode, cards 301 show applications or otheractivities in operation. Thus, as the user navigates among cards 301, heor she can see the actual live application or other activity within eachcard 301.

Grid Mode

As mentioned above, in one embodiment, both card mode and shuffle modepresent cards 301 in a linear arrangement. In one embodiment, a gridmode is available that allows a user to see more cards 301 on screen 101by presenting cards 301 in a two-dimensional grid.

Referring now to FIG. 10E, there is shown an example of screen 101containing four open cards 301 in grid mode.

In one embodiment, when in grid mode, cards 301 are presented at a sizethat permits all cards 301 to be displayed simultaneously. Thus, forexample, in FIG. 10F, cards 301 are shown at a smaller size than thesize used in FIG. 10E, so that all nine cards 301 can be shownsimultaneously. As cards 301 are dismissed or launched, cards 301 can bescaled appropriately to permits all cards 301 to be displayedsimultaneously.

In one embodiment, in grid mode, a minimum card 301 size (or a maximumnumber of displayed cards 301) is enforced, even if this means that onlya subset of cards 301 can be displayed. Thus, in effect, once cards 301have been scaled down to the minimum size (or once the maximum number ofdisplayed cards 301 is shown on screen 101), no further downward scalingtakes place. Rather, scrolling is permitted to allow the user to accessremaining non-displayed cards 301. Some visual indication can beprovided to inform the user that additional cards 301 can be accessedvia scrolling, for example by showing the edges of cards 301 that areoff-screen. The user can scroll, for example, by moving cards 301 to theleft or right, or performing a gesture in gesture area 102, or by anyother known means. In the example of FIG. 10G, scrolling is implementedin a horizontal direction, so that the off-screen cards 301 arepositioned to the left and to the right of the displayed cards 301;however, one skilled in the art will recognize that scrolling can beimplemented in any desired direction, and/or in two or more directionsif desired.

Referring now to FIG. 14, there is shown an example of a method forpresenting cards 301 in grid mode according to one embodiment. Grid modeis initiated 1401, for example in response to user input. Device 100determines 1402 the total number of open cards 301. Device 100 thendetermines 1403 whether the number of open cards 301 exceeds a maximumnumber to display on screen 101; this maximum number may depend on, forexample, the size of screen 101, the available resolution, a minimumacceptable size for cards 103, and/or other factors.

If the number of open cards 301 does not exceed the maximum number, thendevice 100 determines 1404 an appropriate scaling factor to maximizescreen size. As described above, in one embodiment, cards are shown at asize that permits all cards 301 to be displayed simultaneously (as longas cards 301 are at least the minimum acceptable size). Device 100scales 1409 cards 301 according to the scaling factor, and displays 1405all open cards 301.

If the number of open cards 301 exceeds the maximum number, then device100 scales 1410 cards 301 to the minimum acceptable size, and displays1406 a subset of open cards 301 at the minimum acceptable size.Non-displayed cards 301 can be accessed via scrolling. A scroll bar orother scroll mechanism can be shown; alternatively, a user can scroll bydragging cards 301 in a particular direction. If a scroll command isreceived 1407, device 100 scrolls 1408 the cards so that a differentsubset of cards 301 is displayed. Scrolling can take place repeatedly,if desired.

In one embodiment, in grid mode, shuffle mode, and card mode, cards 301show live, real-time information and can be interacted with in the samemanner as in full-screen mode. In other embodiments, in at least some ofthese modes, cards 301 are presented in a “frozen” or static form.

Switching Among Modes

In one embodiment, the user can switch among modes pressing physicalbutton 103 or some other button on device 100. In another embodiment,the user can touch or double-tap a card 301 in shuffle mode to initiatea switch to full-screen mode or to card mode. In yet another embodiment,device 100 switches from shuffle mode to full-screen mode (or to cardmode) after some period of inactivity. Other mechanisms can also beprovided for switching among the modes. In one embodiment, a transitioneffect is performed when switching from one mode to another.

In another embodiment, the user can switch among card mode, shufflemode, and grid mode by tapping in a designated area on screen 101. Inone embodiment, the designated area is any area not occupied by any card301. In another embodiment, the designated area is an area below cards301.

In yet another embodiment, when in card mode, tapping the area below therow of cards causes a switch to shuffle mode, whereas, when in shufflemode, tapping any area not occupied by a card 301 causes a switch tocard mode. In other embodiments, other user input actions can cause aswitch between the modes, including for example, entering a gesture,typing a key on a keyboard, pressing a button, selecting a menu command,activating an on-screen button or other element, or the like.

In another embodiment, the user can switch among the various modes byperforming a gesture. One example of such a gesture is a “swipe up”gesture beginning in gesture area 102 and extending onto screen 101. Inone embodiment, such a gesture switches from full-screen mode to cardmode, or from card mode to shuffle mode, or from shuffle mode to gridmode. In another embodiment, such a gesture switches from full-screenmode to card mode, or from card mode to grid mode. In yet anotherembodiment, such a gesture switches from full-screen mode to card mode,or from card mode to a launcher screen.

Another example of a mode change gesture is a “swipe down” gesturebeginning on screen 101 and extending onto gesture area 102. In oneembodiment, such a gesture switches from grid mode to shuffle mode, orfrom shuffle mode to card mode, or from card mode to full-screen mode.In another embodiment, such a gesture switches from grid mode to cardmode, or from card mode to full-screen mode. In yet another embodiment,such a gesture switches from a launcher screen to card mode, or fromcard mode to full-screen mode.

In other embodiments, other gestures can be used for mode changes; forexample, a multi-finger gesture such as a pinch can be used to changefrom one mode to another.

In another embodiment, the user can switch among modes by initiating amode change command, for example by touching a button on screen 101, orby pressing button 103 or some other physical button on device 100, orby selecting a mode change command from a menu.

In yet another embodiment, the user can switch from one mode to anotherby changing the orientation of device 100; for example, device 100 maybe equipped with an orientation sensor (such as an accelerometer) thatcan detect such changes and change modes accordingly.

One skilled in the art will recognize that mode changes can take placein response to other types of commands, contexts, and/or environmentalfactors.

Auto-Rearrangement of Cards

In some embodiments, device 100 may automatically rearrange cards 301 inresponse to certain user actions. For example, if the user attempts tolaunch an activity that already has an open card 301, that card 301 may,in some embodiments, be moved to whatever position would be used for anewly launched activity. In one embodiment, the new position for thecard 301 would be the rightmost position in the sequence of cards 301.This may be desirable in order to maintain consistency with regard tothe user's expectation that a newly launched activity is positioned atthe rightmost position in the sequence.

Referring now to FIGS. 11A through 11D, there are shown examples of sucha technique along with related behaviors. In FIG. 11A, there is shown anexample of display screen 101 in full-screen mode wherein four cards 301are open, one of which 301C has focus, according to one embodiment ofthe present invention. As before, additional open cards 301A, 301B, 301Dare depicted in FIG. 11A for illustrative purposes only, but are notcurrently displayed on display screen 101.

In FIG. 11B, new card 301E is introduced, for example in response to theuser launching a new activity via an application launch screen. In oneembodiment, new card 301E is positioned at the rightmost position in thesequence of cards 301, although one skilled in the art will recognizethat other positions for new card 301E can be used. For example, newcard 301E can be positioned at the leftmost position, or at some otherlocation such as adjacent to the card 301 that was most recentlydisplayed at the time the new activity was launched.

In addition, in one embodiment and as shown in FIG. 11B, all cards 301are shifted in position so that new card 301E is given focus.

FIG. 11C depicts an example of card rearrangement that takes place inresponse to the user attempting to launch an activity that correspondsto a card 301B that is already open. In one embodiment, card 301B ismoved to the end (rightmost position) of the card sequence. In addition,in one embodiment and as shown in FIG. 11C, all cards 301 are shifted inposition so that card 301B is given focus.

Alternatively, it may be desirable to shift focus so that, when the userattempts to launch an activity that corresponds to a card 301B that isalready open, card 301B is given focus without rearranging the cardsequence. FIG. 11D depicts an example of such an embodiment, in responseto the user attempting to launch an activity that corresponds to a card301B that is already open. Here, rather than rearranging the cardsequence, focus is changed and the card sequence remains unchanged.

In one embodiment, the user can select whether the card sequence shouldbe rearranged when an activity that corresponds to an open card 301 islaunched. This selection can be made in advance, such as via apreferences or options screen. Alternatively, the user can be given anoption between the two behaviors at the time the activity correspondingto an open card 301 is launched. For example, the user can be presentedwith a dialog box noting that the activity is already open, andprompting the user to indicate whether or not to rearrange the cardsequence.

Although FIGS. 11A through 11D depict device 100 in full-screen mode,one skilled in the art will recognize that the automatic rearrangementtechniques described herein can be performed in any mode, including cardmode, shuffle mode, and/or grid mode. In addition, the particulararrangement and appearance of screen 101, device 100, and cards 301 isintended to be exemplary and not to limit the scope of the claimedinvention in any way.

Referring now to FIG. 15, there is shown a flow diagram depicting amethod for card rearrangement according to one embodiment. The userlaunches 1501 an activity, for example by tapping on an icon in a launchscreen. In step 1502, if no card 301 is already open for the launchedactivity, a new card 301 is opened and added 1503 to the end of thecurrent sequence of cards 301. For example, the new card 301 can beadded 1503 at the rightmost position in the current sequence of cards301. If no cards 301 are already open, the new card 301 becomes the onlycard 301 in the sequence. Focus is shifted 1504 to new card 301, forexample by placing new card 301 in the center of screen 101, or causingthe activity represented by new card 301 to occupy substantially entirescreen 101 (if in full-screen mode).

If, in step 1502, a card 301 for the launched activity is already open,device 100 determines 1505 whether it should automatically rearrange thecard sequence. As discussed above, in some embodiments card sequencesare automatically rearranged when an activity that corresponds to anopen card 301 is launched, while in other embodiments, they are not.Alternatively, the user can be given an option to select between the twobehaviors, either in advance or at the time the activity correspondingto an open card 301 is launched.

If device 100 determines 1505 that it should automatically rearrange thecard sequence, the card 301 corresponding to the launched activity ismoved 1507 to the end of the current sequence of cards 301 (for example,by moving the card 301 corresponding to the launched activity to therightmost position in the sequence of cards 301).

In one embodiment, whether or not the card sequence is rearranged, focusis shifted 1506 to the card 301 corresponding to the launched activity,for example by placing the card 301 in the center of screen 101, orcausing the activity represented by the card 301 to occupy substantiallyentire screen 101 (if in full-screen mode).

Sibling Cards

In one embodiment, when a new card 301 is opened, its placement withinthe sequence of cards 301 depends upon its relationship (if any) withexisting open cards 301. For example, if a new card 301 is opened for analready-running activity, the new card 301 can be placed adjacent toopen card(s) 301 for that application. These cards 301, referred to as“sibling cards”, are therefore positioned so that cards 301 for a givenactivity are located adjacent to one another in the overall cardsequence. For example, a new card 301 for an email application mayappear when a user initiates a reply to an email message; the newsibling card 301 for the reply can be positioned adjacent to theexisting card 301 for the original message. As another example, a newcard 301 for a browser application can be positioned adjacent to anycurrently open cards 301 for the browser application. Placing relatedcards 301 so that they are adjacent to each other allows a user to moreeasily discern the relationship among cards 301 in the sequence and tonavigate among cards 301.

Cards 301 can be related to one another (i.e., can be “siblings”) byvirtue of the fact that they are associated with a common application oractivity. Alternatively, cards can be considered siblings if they relateto a particular task, thread, contact, subject, company, or operation.The sibling relationship can be inferred, or it can be established basedon explicit labeling or other indication specified by a user. Oneskilled in the art will recognize that the mechanism for placing cards301 according to their sibling relationship can be used regardless ofthe particular basis for determining a sibling relationship among cards301.

In one embodiment, sibling cards 301 can be freely moved and/orseparated as the user wishes. Thus, the initial placement of a new card301 by virtue of its sibling relationship with open card(s) 301 does notprohibit later movement of the card 301 to a location that is notadjacent to its siblings 301.

Referring now to FIGS. 12A and 12B, there is shown an example ofplacement of sibling cards 301 according to one embodiment. In FIG. 12A,seven cards 301 are open, and card 301D has focus. Device 100 is infull-screen mode, so that card 301D occupies substantially the entirescreen 101.

In FIG. 12B, sibling card 301D′ is introduced, for example in responseto the user initiating a task that opens a new card for the activitycorresponding to card 301D. For example, if card 301D includes an emailmessage, the user's initiation of a reply message can result in new card301D′ being opened for the reply. As shown in FIG. 12B, new card 301D′is introduced at a position adjacent to card 301D within the cardsequence. As shown in FIG. 12B, in one embodiment new card 301D′ isgiven focus, and now occupies substantially the entire screen 101.

Although FIGS. 12A and 12B depict device 100 in full-screen mode, oneskilled in the art will recognize that the sibling card 301 launchtechniques described herein can be performed in any mode, including cardmode, shuffle mode, and/or grid mode. In addition, the particulararrangement and appearance of screen 101, device 100, and cards 301 isintended to be exemplary and not to limit the scope of the claimedinvention in any way.

Referring now to FIGS. 12C and 12D, there is shown an example ofreordering of card to separate sibling cards in response to user input,according to one embodiment of the present invention. In the example,the user drags card 301D from its initial location to a new positionbetween cards 301B and 301C. As can be seen in FIG. 12D, in oneembodiment, card 301D′ remains in its original position and does notmove with card 301D.

In another embodiment, sibling cards do move together, so that draggingcard 301D would cause card 301D′ to move as well. For example, in oneembodiment, sibling cards 301 cannot be separated from one another.

In another embodiment, the user can specify whether or not sibling cards301 should move together, either in advance via a preference screen orsimilar mechanism, or at the time the user initiates a card movementoperation involving a card 301 having a sibling.

In another embodiment, the user can select more than one card 301 to bemoved simultaneously. For example, the user can highlight two or morecards 301, and then move one of the highlighted cards 301 to cause allof them to move together. In one embodiment, selecting a card 301 thathas at least one sibling causes the sibling(s) to be selectedautomatically, so that if the user then moves one of the selected cards301 the siblings move as well; however, the user can deselect theselected cards 301 prior to moving the cards 301, if he or she does notwant all of the sibling cards to move 301.

Card Groups

In one embodiment, cards 301 can be visually grouped with one another.Thus, cards 301 having some relationship to one another (such as cards301 associated with a particular application or activity) can bedisplayed in a manner that indicates and/or reinforces the relationship.For example, cards 301 representing various web pages being viewed via abrowser application can be grouped.

One example of a visual paradigm for indicating groups of cards 301 isto depict the cards 301 in a manner that resembles a stack or deck, witha fully-visible front card 301 (or “top card”) and one or moreadditional cards 301 depicted as though they are behind the front card301. Alternatively, card groups can be indicated in other ways thatdistinguish them from non-grouped cards 301: for example, card groupscan be shown via a distinctive color scheme, different sizes, differentvertical or horizontal positioning, bracketing, highlighting, spacing,or any other mechanism. In various embodiments as described below, auser can interact with groups, separating their constituent cards 301 asdesired, creating new groups, changing the order of groups, and thelike. In one embodiment, where stacking is used to indicate groups,cards 301 can be “unstacked” at times, even while preserving their grouprelationship, either automatically or manually to facilitate certaintypes of interactions and viewing of constituent cards 301. While cards301 are unstacked, in some embodiments, an alternative mechanism, suchas bracketing or distinctive coloring, is used to remind the user thatthe cards 301 are still members of a group. For example, in oneembodiment, card groups are represented by stacks in card view, but thestacks are separated in full-screen view so that the user can see eachconstituent card 301 in its entirety.

Referring now to FIGS. 13A through 13K, there are shown various examplesof visual depictions of card groups and behaviors according to variousembodiments. FIG. 13A depicts display screen 101 in full-screen mode.Eight cards 301A, 301B, 301C, 301C′, 301C″, 301C″′, 301D, and 301E areopen, and card 301C currently has focus. Cards 301C, 301C′, 301C″, and301C″′ form a card group, for example by virtue of the fact that theyare all associated with a common activity or application. However, inthe example of FIG. 13A, the grouping of cards 301 is not explicitlyshown in full-screen mode, and cards 301 behave in the same manner asthough they were not grouped with one another. One skilled in the artwill recognize, however, that in other embodiments, the card group canbe depicted by some visual means, such as a distinctive color, shading,border, icon, or other indicator.

FIG. 13B depicts display screen 101 in card mode, with the same eightcards 301A, 301B, 301C, 301C′, 301C″, 301C′″, 301D, and 301E being open,and card 301C still having focus. Here, grouped cards 301C, 301C′,301C″, and 301C″′ are depicted in a stack 1301A, with front card 301Cshown in full and remaining cards 301C′, 301C″, and 301C″′ beingpartially obscured by card 301C. In one embodiment, the order of cards301C, 301C′, 301C″, and 301C″′ corresponds to the order in which cards301C, 301C′, 301C″, and 301C′″ appeared in full-screen mode. In anotherembodiment, if one of the cards 301C, 301C′, 301C″, and 301C′″ in thegroup was in focus at the time the user switched from full-screen modeto card mode, then the card 301 that was in focus is positioned at thefront of stack 1301A, with the remaining cards 301 in the group beingplaced elsewhere in the stack.

In one embodiment, the user can move and manipulate stack 1301A as if itwere a single card 301, including rearranging stack 1301A within thecard sequence, dismissing stack 1301A, and the like. In one embodiment,the user can dismiss the entire group of cards by performing a carddismissal operation on stack 1301A (such as dragging stack 1301A up tothe top of screen 101). In another embodiment, such a dismissal actiononly dismisses the top card in the group while leaving the remainingcard(s) 301 still open (and still grouped if there are more than one).In yet another embodiment, in response to a user action to dismiss stack1301A, the user is prompted to specify whether he or she intends todismiss the entire group or a single card 301.

In one embodiment, the user can cause cards 301 in a stack 1301A to bereordered, so as to bring a different card 301 to the top of the stack1301A for ease of viewing. In one embodiment, the user drags the frontcard (such as card 301C in FIG. 13B) in a downward direction torearrange the order of cards 301 in stack 1301A. In response to such anaction, the front card 301 moves to the back of stack 1301A, and thecard immediately behind the front card moves to the front. For example,FIG. 13C depicts display screen 101 after card 301C has been moved tothe back of stack 1301A, so that card 301C′ is now shown in the frontposition.

If the user causes a switch from card mode to full-screen mode, in oneembodiment cards 301 in a stack 1301A are “unstacked” so that thefull-screen mode resembles that shown in FIG. 13A. In one embodiment,upon entering full-screen mode from card mode, cards belonging to agroup are placed in an order corresponding to the most recentarrangement of cards 301 in stack 1301A.

As mentioned above, in various embodiments card groups can be shown inother ways. For example, in one embodiment, card size and/or verticaloffset can be used to indicate cards 301 that are part of a group. Forexample, in FIG. 13D, cards 301C, 301C′, 301C″, and 301C″′ are shown ata larger size and at a different vertical offset compared with othercards 301A, 301B, 301D, 301D, 301E; this indicates that cards 301C,301C′, 301C″, and 301C″′ form part of group 1301B. The particularvertical offsets and sizes shown in FIG. 13D are merely exemplary.

In one embodiment, some of the cards 301 in the group are shown in frontof, and partially obscuring, other cards 301 that are not part of thegroup. For example, in FIG. 13D, card 301C partially obscures card 301B(which is not part of group 1301B); similarly, card 301C″′, if it werebrought within display 101, would partially obscure card 301D. In oneembodiment, obscured cards 301 are brought into full view if and whenthey are given focus.

In one embodiment, if focus changes so that the card 301 in focus is nota member of group 1301B, the depiction of group 1301B changes to a stackview. Thus, in this embodiment, the mechanism for depicting groups inFIG. 13D is only used when a member of the group is in focus; otherwise,the group is shown as a stack. In general, in one embodiment, thedepiction of a stack can change from one view to another depending onwhether a card 301 in the stack is currently in focus. Referring now toFIGS. 13F and 13G, there is shown an example of a transition from viewin which one of the members of group 1301B has focus to a view in whichthe card having focus is not part of a group. In FIG. 13F, card 301C(which is a member of group 1301B) has focus; accordingly, the membersof group 1301B are indicated using a vertical offset and sizedifferential as compared with other cards 301. In FIG. 13G, card 301D(which is not a member of group 1301B) has focus; accordingly, themembers of group 1301B are indicated as stack 1301A.

In one embodiment, card size and/or vertical offset can be used todepict card groups in both card mode and shuffle mode. In anotherembodiment, card groups are depicted in card mode by vertical offset anddistinctive card size (as shown in FIG. 13D), but are depicted inshuffle mode by vertical offset without changing the card size. Anexample of such an arrangement is shown in FIG. 13E, which depictsscreen 101 in shuffle mode. In FIG. 13E, cards 301C, 301C′, 301C″, and301C′″ are shown at a different vertical offset compared with othercards 301A, 301B, 301D, 301D, 301E, so as to indicate that cards 301C,301C′, 301C″, and 301C″′ are members of group 1301B. However, in thisexample, all cards 301 are shown at the same size.

In one embodiment, cards 301 are automatically grouped with one another,for example when several cards 301 are associated with a commonapplication or other activity. In one embodiment, the user can manuallyadd cards 301 to groups, or remove cards 301 from groups. In shufflemode and/or in card mode, a user can add a card 301 to a group bydragging the card 301 to an area of the screen occupied by a card group.Referring now to FIGS. 16A through 16D, there is shown an examplewherein the user drags card 301B to a position within group 1301Bbetween cards 301C′ and 301C″; this causes card 301B to be added togroup 1301B, at a position between cards 301C′ and 301C″. The exampledepicts the operation in card mode, although it can also be performed ina similar manner in shuffle mode.

In shuffle mode and/or in card mode, a user can remove a card 301 from agroup by dragging the card 301 to an area of the screen not occupied bya card group. Referring now to FIGS. 17A through 17D, there is shown anexample wherein the user drags card 301C′ to a position between cards301D and 301E; this causes card 301C′ to be removed from group 1301B,and placed at a position between cards 301D and 301E. The exampledepicts the operation in card mode, although it can also be performed ina similar manner in shuffle mode. In one embodiment, upon completion ofthe operation, card 301C′ would be in focus; accordingly card 301C′ (aswell as adjacent cards 301D and 301E) would be shown at regularcard-view size. Also, in one embodiment, as described above, remainingcards 301C, 301C″, and 301C′″ in group 1301B would form a stack sincethey are no longer in focus.

In one embodiment, a user can manually create a new group and add cards301 to it. For example, referring now to FIG. 13H, while in shufflemode, the user drags card 301D downward slightly; this creates new group1301B containing the single card 301D. Card 301D then remains in anoffset position with respect to other cards 301, to indicate itsmembership in group 1301B. Referring now to FIG. 131, the user dragsanother card 301E downward to add it to existing group 1301B. Referringnow to FIG. 13J, the user drags another card 301G downward to add it toexisting group 1301B; as shown in FIG. 13K, the card sequence isrearranged so that cards 301D, 301E, and 301G are positioned adjacent toone another.

One skilled in the art will recognize that the technique depicted inFIGS. 13H through 13K is merely exemplary, and that other techniques canbe used for creating groups and adding cards 301 to groups. For example,a button, pull-down menu, gesture, or other user input mechanism can beused to activate a “create group” command. Alternatively, a user canplace a finger on each of two or more cards 301 to be grouped together,and pinch the fingers together to create a new group including the twoor more cards 301. Alternatively, a user can group two or more cards bydragging one card 301 onto another. Subsequently, additional cards 301can be added to the group by dragging or by additional pinching inputoperations.

In one embodiment, visual feedback is provided while a user is dragginga card 301 onto a group or otherwise performing an input operation thatcan add a card 301 to a group. For example, a distinctive highlightingeffect, such as a glow, can be applied to a group while the user drags acard 301 onto the group but before he or she completes the drag-and-dropoperation. This highlighting effect can serve to inform the user that,if he or she drops the card 301 it will be placed in the group.

In one embodiment, the vertical offset at which a user drops a card 301is relevant only when it is needed to disambiguate a card rearrangementaction from an action intended to add/remove a card 301 to/from a group.For example, if a user drags and drops a card 301 between two cards 301that are already part of a group, then the vertical offset of the cardbeing dragged is not relevant; once dropped, the card 301 joins thegroup. On the other hand, if a user drags and drops a card 301 between acard 301 that is part of a group and an adjacent card that is not partof the group, the vertical offset of the card at the time it is droppedis relevant to determining whether to a) add the card 301 to the groupor b) move the card 301 to a location adjacent to (but not part of) thegroup.

For example, referring again to FIG. 13K, if a user drags and drops card301A to a location between cards 301E and 301G, card 301A joins group1301B regardless of the vertical position of card 301A at the time it isdropped. However, if the user drags and drops card 301A to a locationbetween cards 301G and 301F, the vertical position of card 301Adetermines whether card 301A joins group 1301B. Specifically, if thevertical position approximates the vertical position of card 301F, thencard 301A does not join group 1301B but is placed, ungrouped, to theleft of card 301F. However, if the vertical position more closelyapproximates the vertical position of card 301G, then card 301A joinsgroup 1301B and is placed to the right of card 301G within group 1301B.

In one embodiment, a user can turn card grouping on or off, for examplevia a preferences or options screen. If card grouping is turned off, allcards 301 are represented singly and without reference to groups. In oneembodiment, grouping relationships are preserved internally when cardgrouping is turned off, so that the groups can be reestablished if cardgrouping is later turned on.

In one embodiment, groups can be nested, so that a group can containanother group as one of its members. Any number of levels of suchnesting can be implemented. In one embodiment, successively nestedgroups can be indicated, for example, by different offsets in verticalposition on screen 101.

In various embodiments, the present invention can be implemented as asystem or a method for performing the above-described techniques, eithersingly or in any combination. In another embodiment, the presentinvention can be implemented as a computer program product comprising acomputer-readable storage medium and computer program code, encoded onthe medium, for performing the above-described techniques.

The various features described above can be implemented singly or in anycombination, as will be apparent to one skilled in the art.

The present invention has been described in particular detail withrespect to one possible embodiment. Those of skill in the art willappreciate that the invention may be practiced in other embodiments.First, the particular naming of the components, capitalization of terms,the attributes, data structures, or any other programming or structuralaspect is not mandatory or significant, and the mechanisms thatimplement the invention or its features may have different names,formats, or protocols. Further, the system may be implemented via acombination of hardware and software, as described, or entirely inhardware elements, or entirely in software elements. Also, theparticular division of functionality between the various systemcomponents described herein is merely exemplary, and not mandatory;functions performed by a single system component may instead beperformed by multiple components, and functions performed by multiplecomponents may instead be performed by a single component.

Reference herein to “one embodiment”, “an embodiment”, or to “one ormore embodiments” means that a particular feature, structure, orcharacteristic described in connection with the embodiments is includedin at least one embodiment of the invention. Further, it is noted thatinstances of the phrase “in one embodiment” herein are not necessarilyall referring to the same embodiment.

Some portions of the above are presented in terms of algorithms andsymbolic representations of operations on data bits within a computermemory. These algorithmic descriptions and representations are the meansused by those skilled in the data processing arts to most effectivelyconvey the substance of their work to others skilled in the art. Analgorithm is here, and generally, conceived to be a self-consistentsequence of steps (instructions) leading to a desired result. The stepsare those requiring physical manipulations of physical quantities.Usually, though not necessarily, these quantities take the form ofelectrical, magnetic or optical signals capable of being stored,transferred, combined, compared and otherwise manipulated. It isconvenient at times, principally for reasons of common usage, to referto these signals as bits, values, elements, symbols, characters, terms,numbers, or the like. Furthermore, it is also convenient at times, torefer to certain arrangements of steps requiring physical manipulationsof physical quantities as modules or code devices, without loss ofgenerality.

It should be borne in mind, however, that all of these and similar termsare to be associated with the appropriate physical quantities and aremerely convenient labels applied to these quantities. Unlessspecifically stated otherwise as apparent from the following discussion,it is appreciated that throughout the description, discussions utilizingterms such as “processing” or “computing” or “calculating” or“displaying” or “determining” or the like, refer to the action andprocesses of a computer system, or similar electronic computing moduleand/or device, that manipulates and transforms data represented asphysical (electronic) quantities within the computer system memories orregisters or other such information storage, transmission or displaydevices.

Certain aspects of the present invention include process steps andinstructions described herein in the form of an algorithm. It should benoted that the process steps and instructions of the present inventioncan be embodied in software, firmware or hardware, and when embodied insoftware, can be downloaded to reside on and be operated from differentplatforms used by a variety of operating systems.

The present invention also relates to an apparatus for performing theoperations herein. This apparatus may be specially constructed for therequired purposes, or it may comprise a general-purpose computerselectively activated or reconfigured by a computer program stored inthe computer. Such a computer program may be stored in a computerreadable storage medium, such as, but is not limited to, any type ofdisk including floppy disks, optical disks, CD-ROMs, magnetic-opticaldisks, read-only memories (ROMs), random access memories (RAMs), EPROMs,EEPROMs, magnetic or optical cards, application specific integratedcircuits (ASICs), or any type of media suitable for storing electronicinstructions, and each coupled to a computer system bus. Further, thecomputers referred to herein may include a single processor or may bearchitectures employing multiple processor designs for increasedcomputing capability.

The algorithms and displays presented herein are not inherently relatedto any particular computer, virtualized system, or other apparatus.Various general-purpose systems may also be used with programs inaccordance with the teachings herein, or it may prove convenient toconstruct more specialized apparatus to perform the required methodsteps. The required structure for a variety of these systems will beapparent from the description above. In addition, the present inventionis not described with reference to any particular programming language.It will be appreciated that a variety of programming languages may beused to implement the teachings of the present invention as describedherein, and any references above to specific languages are provided fordisclosure of enablement and best mode of the present invention.

While the invention has been described with respect to a limited numberof embodiments, those skilled in the art, having benefit of the abovedescription, will appreciate that other embodiments may be devised whichdo not depart from the scope of the present invention as describedherein. In addition, it should be noted that the language used in thespecification has been principally selected for readability andinstructional purposes, and may not have been selected to delineate orcircumscribe the inventive subject matter. Accordingly, the disclosureof the present invention is intended to be illustrative, but notlimiting, of the scope of the invention, which is set forth in theclaims.

What is claimed is:
 1. A computing device, comprising: a touch-sensitivedisplay; a processor; and a memory storing one or more programsincluding instructions that, when executed by the processor, cause thecomputing device to: present, in a two-dimensional grid arrangement onthe touch-sensitive display, a plurality of graphical elementscorresponding to a plurality of software applications operating on thecomputing device; respond to a first directional contact along a firstlinear direction on the touch-sensitive display by changing a positionof the plurality of graphical elements relative to the touch-sensitivedisplay in the first linear direction; and respond to a seconddirectional contact of moving a selected one of the plurality ofgraphical elements along a second direction that is different than thefirst linear direction on the touch-sensitive display to dismiss theselected one of the graphical elements so that the dismissed graphicalelement is no longer presented on the touch-sensitive display.